package com.jrx.anytxn.param.dto.operation;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author 张靖烽
 * @name PrPromotionInfoReq
 * @description
 * @create 2020-12-08 17:17
 **/
public class PrPromotionInfoReq implements Serializable {

    private static final long serialVersionUID = 1544361023267301799L;

    /**
     * 技术主键
     * 表字段:id
     */
    private Long id;

    /**
     * 机构号
     * 表字段:organization_id
     */
    private String organizationId;

    /**
     * 租户id
     * 表字段:tenant_id
     */
    private String tenantId;

    /**
     * 活动id
     * 表字段:promotion_id
     */
    private String promotionId;

    /**
     * 活动描述
     * 表字段:promotion_desc
     */
    private String promotionDesc;

    /**
     * 状态【1 = 正常 0 = 失效】
     * 表字段:table_status
     */
    private String tableStatus;

    /**
     * 利率促销标志【1 = 利率打折 2 = 固定利率】
     * 表字段:rate_flag
     */
    private String rateFlag;

    /**
     * 利率折扣（rate_flag为“1”时，该字段必填）
     * 表字段:rate_discount_percentage
     */
    private BigDecimal rateDiscountPercentage;

    /**
     * 促销固定利率（rate_flag为“2”时，该字段必填）
     * 表字段:interest_table_id
     */
    private String interestTableId;

    /**
     * 贴息支付方（01-- 商户  02-- 平台  03-- 资金方  04--渠道）
     * 表字段:interest_discount_payer
     */
    private String interestDiscountPayer;

    public String getInterestDiscountPayer() {
        return interestDiscountPayer;
    }

    public void setInterestDiscountPayer(String interestDiscountPayer) {
        this.interestDiscountPayer = interestDiscountPayer;
    }

    /**
     * 生效日期
     * 表字段:effective_date
     */
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    private Date effectiveDate;

    /**
     * 失效日期
     * 表字段:expire_date
     */
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    private Date expireDate;

    /**
     * 创建时间
     * 表字段:create_time
     */
    private Date createTime;

    /**
     * 更新人
     * 表字段:update_by
     */
    private String updateBy;

    /**
     * 更新时间
     * 表字段:update_time
     */
    private Date updateTime;

    /**
     * 版本号
     * 表字段:record_version_number
     */
    private Integer recordVersionNumber;

    /**
     * 获取技术主键
     * @return id Long
     */
    public Long getId() {
        return id;
    }

    /**
     * 设置技术主键
     * @param id 技术主键
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 获取机构号
     * @return organizationId String
     */
    public String getOrganizationId() {
        return organizationId;
    }

    /**
     * 设置机构号
     * @param organizationId 机构号
     */
    public void setOrganizationId(String organizationId) {
        this.organizationId = organizationId;
    }

    /**
     * 获取租户id
     * @return tenantId String
     */
    public String getTenantId() {
        return tenantId;
    }

    /**
     * 设置租户id
     * @param tenantId 租户id
     */
    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;
    }

    /**
     * 获取活动id
     * @return promotionId String
     */
    public String getPromotionId() {
        return promotionId;
    }

    /**
     * 设置活动id
     * @param promotionId 活动id
     */
    public void setPromotionId(String promotionId) {
        this.promotionId = promotionId;
    }

    /**
     * 获取活动描述
     * @return promotionDesc String
     */
    public String getPromotionDesc() {
        return promotionDesc;
    }

    /**
     * 设置活动描述
     * @param promotionDesc 活动描述
     */
    public void setPromotionDesc(String promotionDesc) {
        this.promotionDesc = promotionDesc;
    }

    /**
     * 获取状态【1 = 正常 0 = 失效】
     * @return tableStatus String
     */
    public String getTableStatus() {
        return tableStatus;
    }

    /**
     * 设置状态【1 = 正常 0 = 失效】
     * @param tableStatus 状态【1 = 正常 0 = 失效】
     */
    public void setTableStatus(String tableStatus) {
        this.tableStatus = tableStatus;
    }

    /**
     * 获取利率促销标志【1 = 利率打折 2 = 固定利率】
     * @return rateFlag String
     */
    public String getRateFlag() {
        return rateFlag;
    }

    /**
     * 设置利率促销标志【1 = 利率打折 2 = 固定利率】
     * @param rateFlag 利率促销标志【1 = 利率打折 2 = 固定利率】
     */
    public void setRateFlag(String rateFlag) {
        this.rateFlag = rateFlag;
    }

    /**
     * 获取利率折扣（rate_flag为“1”时，该字段必填）
     * @return rateDiscountPercentage BigDecimal
     */
    public BigDecimal getRateDiscountPercentage() {
        return rateDiscountPercentage;
    }

    /**
     * 设置利率折扣（rate_flag为“1”时，该字段必填）
     * @param rateDiscountPercentage 利率折扣（rate_flag为“1”时，该字段必填）
     */
    public void setRateDiscountPercentage(BigDecimal rateDiscountPercentage) {
        this.rateDiscountPercentage = rateDiscountPercentage;
    }

    /**
     * 获取促销固定利率（rate_flag为“2”时，该字段必填）
     * @return interestTableId String
     */
    public String getInterestTableId() {
        return interestTableId;
    }

    /**
     * 设置促销固定利率（rate_flag为“2”时，该字段必填）
     * @param interestTableId 促销固定利率（rate_flag为“2”时，该字段必填）
     */
    public void setInterestTableId(String interestTableId) {
        this.interestTableId = interestTableId;
    }

    /**
     * 获取生效日期
     * @return effectiveDate Date
     */
    public Date getEffectiveDate() {
        return effectiveDate;
    }

    /**
     * 设置生效日期
     * @param effectiveDate 生效日期
     */
    public void setEffectiveDate(Date effectiveDate) {
        this.effectiveDate = effectiveDate;
    }

    /**
     * 获取失效日期
     * @return expireDate Date
     */
    public Date getExpireDate() {
        return expireDate;
    }

    /**
     * 设置失效日期
     * @param expireDate 失效日期
     */
    public void setExpireDate(Date expireDate) {
        this.expireDate = expireDate;
    }

    /**
     * 获取创建时间
     * @return createTime Date
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * 设置创建时间
     * @param createTime 创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /**
     * 获取更新人
     * @return updateBy String
     */
    public String getUpdateBy() {
        return updateBy;
    }

    /**
     * 设置更新人
     * @param updateBy 更新人
     */
    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    /**
     * 获取更新时间
     * @return updateTime Date
     */
    public Date getUpdateTime() {
        return updateTime;
    }

    /**
     * 设置更新时间
     * @param updateTime 更新时间
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * 获取版本号
     * @return recordVersionNumber Integer
     */
    public Integer getRecordVersionNumber() {
        return recordVersionNumber;
    }

    /**
     * 设置版本号
     * @param recordVersionNumber 版本号
     */
    public void setRecordVersionNumber(Integer recordVersionNumber) {
        this.recordVersionNumber = recordVersionNumber;
    }
}
